<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // let const : 声明常量: 不改变的量
        // Math.PI
        // 常量一旦被声明
        // const a = 10;
        // let a = 10;
        //  a = 20;
        // console.log(a);
        // const 特性: 1. 一旦声明不能被更改 2.不支持变量提升 3.支持块级作用域 4.也不会挂载windwow上

        // const a = 10;
        // console.log(a);

        // {
            // const a = 20;
            // console.log(a);
        // }

        // console.log(a);

        // const a  = 20;
        // console.log(window.a);


        // 通过const 声明复杂数据类型

        // const obj = {
            // name : '张三',
            // age : 20
        // }

        // 直接赋值 是不能更改的;
        // obj = {name:'李四'};
        // 可以通过追加属性的方式修改对象
        // obj.name = '李四'
        // console.log(obj);

         // 复杂数据类型不被更改 。
        //  const obj = {
        //     name:"张三",
        //     age:20,
        //     obj1:{
        //         myname:"王五"
        //     }
        // }
        // 冻结对象，一旦冻结 ，对象就不能被更改
        // Object.freeze(obj);

        // function deepFreeze(obj){
        //     for(let key in obj){
        //         if(typeof obj[key]==="object"){
        //             deepFreeze(obj[key])
        //         }else{
        //             Object.freeze(obj);
        //         }
        //     }
        // }
        // deepFreeze(obj);

        // obj.name = "李四";
        // obj.obj1.myname = "李四";
        // console.log(obj);













    </script>
</body>
</html>